package com.mdb.open.trade.domain.po.product;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mdb.bc.api.data.DataObjectBase;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
* 类描述：
*  额度历史表实体类
*
* @author liuyi
* @date 2019-07-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("limit_info_his")
public class LimitInfoHis extends DataObjectBase {

    private static final long serialVersionUID = 1L;
    /**
    * ID主键
    */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
    * 额度类型
    */
    private String type;

    /**
    * 额度编号
    */
    @TableField("limit_no")
    private String limitNo;

    /**
    * 额度货币类型
    */
    private String ccy;

    /**
    * 额度种类，在PB中维护
    */
    private String code;

    /**
    * 额度层次 
    */
    private String level;

    /**
    * 层次号
    */
    @TableField("level_no")
    private String levelNo;

    /**
    * 上层额度编号
    */
    private String father;

    /**
    * 顶层额度编号
    */
    @TableField("top_father")
    private String topFather;

    /**
    * 最大额度
    */
    private BigDecimal max;

    /**
    * 实际额度
    */
    private BigDecimal actual;

    /**
    * 使用结余
    */
    @TableField("use_bal")
    private BigDecimal useBal;

    /**
    * 累积结余
    */
    @TableField("cum_bal")
    private BigDecimal cumBal;

    /**
    * 本额度的可用余额
    */
    @TableField("avail_bal")
    private BigDecimal availBal;

    /**
    * 本额度的可用余额净值
    */
    @TableField("net_bal")
    private BigDecimal netBal;

    /**
    * 冻结结余
    */
    @TableField("emk_bal")
    private BigDecimal emkBal;

    /**
    * 额度状态位,每一位表示一种状态
    */
    private String status;

    /**
    * 额度使用方式N:非循环额度
    */
    @TableField("use_type")
    private String useType;

    /**
    * 额度性質,第1位:可否有押品支持;即With Collateral Flag(Y-Yes,N-No).第2位:额度承诺性标识(Y:Committed,N:Non-committed)第3位:银行可无条件撤消标识(Y-Yes,N-No)第4位~第8位:预留
    */
    private String cls;

    /**
    * 生效日期
    */
    @TableField("eff_date")
    private LocalDateTime effDate;

    /**
    * 时效日期
    */
    @TableField("exp_date")
    private LocalDateTime expDate;

    /**
    * 下次检查日期
    */
    @TableField("nrvw_date")
    private LocalDateTime nrvwDate;

    /**
    * 上次重检日期
    */
    @TableField("lrvw_date")
    private LocalDateTime lrvwDate;

    /**
    * 重检周期
    */
    @TableField("rvw_freq")
    private String rvwFreq;

    /**
    * 展期到期日
    */
    @TableField("extend_date")
    private LocalDateTime extendDate;

    /**
    * 可用额度到期日
    */
    @TableField("avail_date")
    private LocalDateTime availDate;

    /**
    * 行使权日期
    */
    @TableField("option_date")
    private LocalDateTime optionDate;

    /**
    * 续期标志,取值:Y/N/空格,Y:当天续期；N:当天修改到期日；空格:当前没修改到期日
    */
    @TableField("extend_flg")
    private String extendFlg;

    /**
    * 备注
    */
    private String remark;

    /**
     * 平台下次检查日期
     */
    @TableField("platform_nrvw_date")
    private LocalDateTime platformNrvwDate;

    /**
     * 平台上次更新检查日期
     */
    @TableField("platform_lrvw_date")
    private LocalDateTime platformLrvwDate;

    /**
     * 平台上次更新检查日期
     */
    @TableField("platform_update_date")
    private LocalDateTime platformUpdateDate;

    /**
     * 平台额度类型
     */
    @TableField("limit_type")
    private String limitType;

    /**
    * 创建者ID
    */
    @TableField(value = "create_user_id")
    private String createUserId;

    /**
    * 创建者
    */
    @TableField(value = "create_user_name")
    private String createUserName;

    /**
    * 操作人ID
    */
    @TableField("opt_user_id")
    private String optUserId;

    /**
    * 操作人name
    */
    @TableField("opt_user_name")
    private String optUserName;

    /**
    * 创建时间
    */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
    * 修改时间
    */
    @TableField(value = "update_time")
    private LocalDateTime updateTime;

}
